<?php defined('SYSPATH') or die('No direct script access.');

abstract class Model_SupplierParser_Abstract
{ 
    protected static $_instance = null;      // Экземпляр класса - реализация Синглтон
    
    /**
    * Защищенный конструктор - реализация Синглтон
    * 
    * @return Model_ReviewParser_YandexMarket
    */
    protected function __construct()
    {
    }
    
    /**
    * Получить экземпляр класса - реализация Синглтон
    */
    public static function instance()
    {
        if (self::$_instance !== null) {
            return self::$_instance;
        }   
        
        static::$_instance = new static;
        return static::$_instance; 
    }
    
    public static function _get_source_code($url)
    {
        header('Content-type: text/html; charset=UTF-8');
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 20);
        curl_setopt($ch, CURLOPT_TIMEOUT, 20);
        curl_setopt($ch, CURLOPT_REFERER, 'http://rapidshare.de/');  
        curl_setopt($ch, CURLOPT_USERAGENT, 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20041107 Firefox/1.0'); 
		curl_setopt($ch, CURLOPT_COOKIE, "region_id=161");
        //curl_setopt($ch, CURLOPT_PROXY, '195.175.37.72:80');
        $output = curl_exec($ch);
        //$output = utf8_decode(curl_exec($ch));
        curl_close($ch);  

        return $output;    
    }   
    
    public static function _cut_str($start, $stop, &$str)
    {      
        $spos = strpos ($str, $start);      //Поиск начала
        
        if ($spos === false) {
            return null;
        }
        
        $spos = $spos + strlen($start);     //Удлиняем позицию на длину строки, чтобы не включать ее в результат
        $text = substr ($str, $spos);       //Режем строку от этой позиции
        $end_pos = strpos ($text,$stop);    // Ищем конец в полученной строке
        
        if ($end_pos === false) {
            return null;
        }
        
        $text = substr ($text,0,$end_pos);  //Режем по конечной позиции     
        $str = str_replace($start.$text.$stop, '', $str);   // Удаляем найденное
        
        return trim($text);                                                                                                                                            
    } 
}
